<?php


namespace app\admin\model;


use think\Model;

class DinosaurList extends Model
{
    private static $instance = null;

    public static function getInstance()
    {
        //检测当前类属性$instance是否已经保存了当前类的实例
        if (self::$instance == null) {
            //如果没有,则创建当前类的实例
            self::$instance = new self();
        }
        //如果已经有了当前类实例,就直接返回,不要重复创建类实例
        return self::$instance;
    }

    /**
     * 单条查询
     * @param array $where  查询条件
     * @param string $field 字段
     * @param false $lock   是否加排它锁
     * @return model
     * @throws $e
     */
    public function getOne($where, $field = '*', $lock = false)
    {
        return $this->lock($lock)->field($field)->where($where)->find();
    }

    /**
     * 分页查询
     * @param array $where  查询条件
     * @param mixed $page  页码
     * @param mixed $size  行数
     * @param string $order 排序
     * @param string $field 字段
     * @return array
     * @throws $e
     */
    public function getPage($where = [], $page = 1, $size = 15, $field = '*', $order = 'id desc')
    {
        return $this->where($where)
            ->order($order)
            ->field($field)
            ->paginate($size, '', ['page'=>$page])
            ->toArray();
    }

    /**
     * 更新数据
     * @param array $where 更新条件
     * @param array $data	 更新数组
     * @return string
     * @throws $e
     */
    public function updateRecord($where,$data)
    {
        return $this->where($where)->update($data);
    }

    /**
     * 多条查询
     * @param array $where  查询条件
     * @param string $field 字段
     * @param string $limit 查询条数
     * @param false $lock   是否加排它锁
     * @param string $order 排序
     * @return array
     * @throws $e
     */
    public function getMany($where = [], $field = '*', $limit = '', $lock = false, $order = 'id asc')
    {
        return $this->lock($lock)->field($field)->where($where)->order($order)->limit($limit)->select()->toArray();
    }

    /**
     * @Title: getCount
     * @Describe 获取总数
     * @param array $where
     * @return DinosaurList
     * @author lijunwei
     * @Date 2021/12/17 15:32
     */
    public function getCount($where = [])
    {
        return $this->where($where)->count();
    }
}
